package cn.xique.module.weixin.web.material;

import cn.xique.module.weixin.web.IbeanBaseController;
import com.jfinal.core.paragetter.Para;
import com.jfinal.kit.Ret;
import com.jfinal.upload.UploadFile;
import com.jfinal.weixin.sdk.api.ApiResult;
import com.jfinal.weixin.sdk.api.shakearound.ShakeAroundMaterialApi;
import io.jboot.web.controller.JbootController;
import io.jboot.web.controller.annotation.RequestMapping;
import io.jpress.module.ibeacon.model.IbeaconMaterial;
import org.json.JSONObject;

import java.util.Date;

@RequestMapping("/Material")
public class MaterialController extends IbeanBaseController {











    /**
     * -------------------------------------------上传图片素材------------------------------------------------------------------
     上传在摇一摇功能中需使用到的图片素材，素材保存在微信侧服务器上。图片格式限定为：jpg,jpeg,png,gif。
     若图片为在摇一摇页面展示的图片，则其素材为icon类型的图片，图片大小建议120px*120 px，限制不超过200 px *200 px，图片需为正方形。
     若图片为申请开通摇一摇周边功能需要上传的资质文件图片，则其素材为license类型的图片，图片的文件大小不超过2MB，尺寸不限，形状不限。

     //@param file 文件
     //@param materialType Icon：摇一摇页面展示的icon图；License：申请开通摇一摇周边功能时需上传的资质文件；若不传type，则默认type=icon
     @return ApiResult
     */
    public void AddMaterial(@Para("type") String type, @Para("mac")String macaddress){
        if (!isMultipartRequest()) {
            renderError(404);
            return;
        }

        UploadFile uploadFile = getFile();
        if (type == null) {
            type = getPara("type");
        }
        if(macaddress == null){
            macaddress = getPara("mac");
        }
        if (uploadFile == null) {
            renderJson(Ret.fail().set("success", false));
            return;
        }

//                String path = AttachmentUtils.moveFile(uploadFile);
        ApiResult result = null;
        if(ShakeAroundMaterialApi.MaterialType.icon.name().equals(type) ) {
            result = ShakeAroundMaterialApi.addMaterial(uploadFile.getFile(), ShakeAroundMaterialApi.MaterialType.icon);
        }else{
            result = ShakeAroundMaterialApi.addMaterial(uploadFile.getFile(), ShakeAroundMaterialApi.MaterialType.license);
        }

        //如果上传成功需要保存记录到数据库
//                {
//                        "data": {
//                              “pic_url”:
//                              “http://shp.qpic.cn/wechat_shakearound_pic/0/1428377032e9dd2797018cad79186e03e8c5aec8dc/120”
//                },
//                        "errcode": 0,
//                        "errmsg": "success."
//                }
        if(result.isSucceed()){
            IbeaconMaterial ibeaconMaterial = new IbeaconMaterial();
            ibeaconMaterial.setIbeaconMac(macaddress);
            JSONObject jsonObject = new JSONObject(result.getJson());
            ibeaconMaterial.setIbeaconMaterial(jsonObject.getJSONObject("data").getString("pic_url"));
            ibeaconMaterial.setMaterialType(type);
            ibeaconMaterial.setCreateTime(new Date());
            ibeaconMaterial.save();
            renderJson(Ret.ok().set("success", true).set("result", result));
        }else{
            renderJson(Ret.ok().set("success", false).set("result", result));
        }

    }

}
